package com.cysoft.third.echarts.component.xAxis;

import java.util.function.Function;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.item.xAxis
 * @date 2025/3/11 12:47
 * @desc 坐标轴指示器标签配置类，用于描述坐标轴指示器上标签的样式和显示规则
 */
public class AxisPointerLabel {

    /**
     * 是否显示标签，默认为 true。
     */
    private boolean show = true;
    /**
     * 标签的背景颜色，默认为 'rgba(50, 50, 50, 0.7)'。
     */
    private String backgroundColor = "rgba(50, 50, 50, 0.7)";
    /**
     * 标签的边框颜色。
     */
    private String borderColor;
    /**
     * 标签的边框宽度。
     */
    private int borderWidth;
    /**
     * 标签的内边距。
     */
    private int[] padding;
    /**
     * 标签的文本样式。
     */
    private NameTextStyle textStyle;
    /**
     * 标签的格式化函数，可以将标签内容进行格式化显示。
     */
    private Function<Object, String> formatter;
    /**
     * 标签的位置，可选值为 'auto'、'left'、'right'、'top'、'bottom'。
     */
    private String position;
    /**
     * 标签的垂直对齐方式，可选值为 'top'、'middle'、'bottom'。
     */
    private String verticalAlign;
    /**
     * 标签的水平对齐方式，可选值为 'left'、'center'、'right'。
     */
    private String align;
    /**
     * 标签的最小宽度，默认为 0。
     */
    private int minWidth = 0;
    /**
     * 标签的最大宽度，默认为 0，表示不限制。
     */
    private int maxWidth = 0;
    /**
     * 标签的最小高度，默认为 0。
     */
    private int minHeight = 0;
    /**
     * 标签的最大高度，默认为 0，表示不限制。
     */
    private int maxHeight = 0;
    /**
     * 标签的偏移量，数组长度为 2，分别表示水平和垂直偏移。
     */
    private int[] offset;
    /**
     * 标签的显示优先级，当标签重叠时，优先级高的标签会优先显示。
     */
    private int priority;
    /**
     * 标签的阴影颜色。
     */
    private String shadowColor;
    /**
     * 标签的阴影模糊度。
     */
    private int shadowBlur;
    /**
     * 标签的阴影水平偏移。
     */
    private int shadowOffsetX;
    /**
     * 标签的阴影垂直偏移。
     */
    private int shadowOffsetY;
}
